﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using upcdew_20111_group2b.CapaDominio;
using NHibernate;
using NHibernate.Criterion;

namespace upcdew_20111_group2b.CapaPersistencia
{
    public class ReservaDAO : BaseDAO<Reserva, String>
    {
        public ICollection<Reserva> ListarReservaPorComent(String coment)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Reserva> resultado = sesion
                        .CreateCriteria(typeof(Reserva))
                        .Add(Restrictions.Like("Reserva.Tex_Comentario", "%" + coment))
                        .List<Reserva>();
                return resultado;
            }
        }
        public ICollection<Reserva> ListarReservaPorFecha(DateTime fecha)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Reserva> resultado = sesion
                        .CreateCriteria(typeof(Reserva))
                        .Add(Restrictions.Eq("Reserva.Fec_Reserva", fecha))
                        .List<Reserva>();
                return resultado;
            }
        }

    public ICollection<Reserva> ListarArea_ComunFec_Reserva(Area_Comun codareacomun,DateTime fec_reserva)
    {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Reserva> resultado = sesion
                        .CreateCriteria(typeof(Reserva))
                        .Add(Restrictions.Eq("Reserva.CodAreaComun", codareacomun.CodAreaComun))
                        .Add(Restrictions.Eq("Reserva.Fec_Reserva", fec_reserva))
                        .List<Reserva>();
                return resultado;
            }
    }


    public ICollection<Reserva> ListarResidenteFec_Reserva(String codresidente, DateTime fec_reserva)
    {
        using (ISession sesion = NHibernateHelper.AbrirSesion())
        {
            ICollection<Reserva> resultado = sesion
                    .CreateCriteria(typeof(Reserva))
                    .Add(Restrictions.Eq("Reserva.CodResidente", codresidente))
                    .Add(Restrictions.Eq("Reserva.Fec_Reserva", fec_reserva))
                    .List<Reserva>();
            return resultado;
        }
    }

    }
}